package com.changgou.business.listener;

import okhttp3.*;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

import java.io.IOException;

/**
 * 监听队列类，用于监听队列中是否有消息， 目的 监听 广告表数据的变化
 */
@Component
public class AdListener {

    /**
     * 用于监听 指定队列中，是否有 未消费的消息
     * 将消息发送给 nginx，由 nginx 进行redis 缓存信息的更新
     * @param message
     */
    @RabbitListener(queues = {"ad_update_queue"})
    public void receiveMessage(String message){
        System.out.println("接收到的消息为："+message);

        //发起远程调用 ， 调用 nginx 的 更新请求 方法
        OkHttpClient okHttpClient = new OkHttpClient();
        String url = "http://192.168.44.128/ad_update?position="+message;
        Request request = new Request.Builder().url(url).build();
        Call call = okHttpClient.newCall(request);
        //回调函数
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                //请求失败
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                //请求成功
                System.out.println("请求成功！！！=" + response.message());
            }
        });
    }
}
